<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
     //发布者-目标
     class Dep{
       constructor(){
         //记录所有的订阅者、
         this.subs = []
       }
       //添加订阅者
       addSub(sub){
         if(sub && sub.upDate){
           this.subs.push(sub)
         }
       }
       //发布通知
       notify(){
          this.subs.forEach(sub =>{
            sub.upDate()
          })
       }
     }
     //订阅者-观察者
     class Watcher {
       upDate(){
         console.log("upDate")
       }
     }
     let dep = new Dep()
     let watcher = new Watcher()
     dep.addSub(watcher)
     dep.notify()


  </script>
</body>
</html>